#ifndef UIRENDERER_H_
#define UIRENDERER_H_

#include "InputManager.h"
#include "FontManager.h"
#include "SkinManager.h"
#include "UISkin.h"
#include "Window.h"
#include <string>
#include <list>

namespace Lame3d
{
	class UIRenderer
	{
		public:
			UIRenderer(const InputManager &iM, const DisplayManager &dM, SkinManager &sM, const std::string& skinName="Default");
			~UIRenderer();
			
			void RenderUI();
			UISkin::Handle& CurrentSkin();
			
			bool DisplayFPS() const;
			void DisplayFPS(bool b);
			
		protected:
			const InputManager &inputManager;
			const DisplayManager &displayManager;
			SkinManager &skinManager;
			
			UISkin::Handle currentSkin; 
			
			bool displayFPS;
			Timer fpsTimer;
			
			void enter2d();
			void exit2d();
			void drawCursor();
			void drawWindow(Window *w);
			void drawFPS();
	};
}

#endif /*UIRENDERER_H_*/
